1. Field of the Invention
This invention relates to technology for ranking subsets of software code based on coverage and at least one concern based criterion.
2. Description of Background
Coverage tools are aimed at measuring what part of the code is executed during tests of a program. Hole analysis is a technique used to present coverage data in an informative way by finding uncovered subsets of the code, e.g., functions, basic blocks files, that share some common property, e.g., subsets of uncovered functions that share a certain sub-string in their name. Hole analysis is disclosed in U.S. patent application Ser. No. 12/144,666 filed, Jun. 24, 2008, and incorporated in its entirety herein by reference. Typically, coverage tasks, e.g., functions, are grouped into subsets with a common property, e.g., common sub-string in the function names. Then groups are ranked by some measure of the quality of their coverage as a group, e.g., the number of uncovered functions in the group divided by the total number of functions in the group. However, hole analysis is typically based on coverage data only. In the above example for instance, this would be a Boolean flag for each function that indicates whether or not the function was covered.
A drawback of that approach is that ranking of holes is done only by their coverage and not by any other criteria, thus not leveraging additional information available for the project. As a result, some non-significant holes can be reported and possibly ranked higher than significant holes. As a simple example of this drawback, one can think of a set of functions that implement a functionality that is no longer required and therefore does not have to be tested. Hole analysis that is based only on the coverage criterion will report this set of functions as a higher ranked hole if this hole contains many functions. To date, no hole analysis technique is using non-coverage criteria to highlight significant holes and to eliminate non-significant holes.